home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / 422mods.zip / BAST003.422 < prev    next >
Text File  |  1993-02-18  |  11KB  |  304 lines

  1. BAST003.MOD -- New Piping System
  2. Bast #224 @17303
  3. Sat Feb 13 14:00:13 1993
  4. /**
  5. ┌────────────────────────────────────────────────────────────────────────────┐
  6. │ Mod Name: Revolutionary Pipe System   Mod Author: Bast                     │
  7. │ Difficulty: ▒▒▒░░░░░░░                Date: 02/07/93                       │
  8. │ WWIV Version: 4.22 and above                                               │
  9. │ Files Affected: BBSUTL.C, COM.C, MSGBASE.C, FCNS.H, VARS.H (argh!)         │
  10. │ Description: This piping system compensates for sysops with extended colors│
  11. │              in, and doesn't use Ctrl-P. I've discovered that it is a pain │
  12. │              not having a piping system that is compatible with extended   │
  13. │              colors, so I wrote this up. What it does is simple: it uses   │
  14. │              another Ctrl key, Ctrl-L to be specific, rather that Ctrl-P.  │
  15. │              All the pipe commands are in an ANSi I designed, and that is  │
  16. │              UUEncoded at the bottom of this mod.                          │
  17. └────────────────────────────────────────────────────────────────────────────┘
  18. **/
  19.  
  20. /** STEP 1: Backup Your Source!!!!!
  21.             I CANNOT and WILL NOT be responsible for any damage
  22.             done to your source code by this mod.
  23. **/
  24.  
  25. /** STEP 2: Open BBSUTL.C **/
  26. /** In void inli(...) Add The Following Above case 16: **/
  27.           case 12: /* Ctrl-L */
  28.             if (cp<maxlen-1) {
  29.               ch=getkey();
  30.               ch=upcase(ch);
  31.               if (pipe(ch)) {
  32.                 s[cp++]=5;
  33.                 s[cp++]=ch;
  34.               }
  35.             }
  36.             break;
  37.  
  38. /** Add The Following Function At The Bottom Of The File **/
  39.  
  40. int pipe(char ch)
  41. {
  42.   char s[81];
  43.   strcpy(s,"");
  44.  
  45.   switch (ch) {
  46.     case 'A': /* Laston */
  47.       sprintf(s,"%s",thisuser.laston);
  48.       break;
  49.     case 'B': /* LastRate */
  50.       sprintf(s,"%d",thisuser.lastrate);
  51.       break;
  52.     case 'C': /* City */
  53.       sprintf(s,"%s",thisuser.city);
  54.       break;
  55.     case 'D': /* DataPhone */
  56.       sprintf(s,"%s",thisuser.dataphone);
  57.       break;
  58.     case 'E': /* Exempt */
  59.       sprintf(s,"%d",thisuser.exempt);
  60.       break;
  61.     case 'F': /* First On */
  62.       sprintf(s,"%s",thisuser.firston);
  63.       break;
  64.     case 'G':  /* User's Age */
  65.       itoa(thisuser.age,s,10);
  66.       break;
  67.     case 'H':  /* User's SL */
  68.       itoa(thisuser.sl,s,10);
  69.       break;
  70.     case 'I': /* User's DSL */
  71.       itoa(thisuser.dsl,s,10);
  72.       break;
  73.     case 'J': /* Ontoday */
  74.       sprintf(s,"%d",thisuser.ontoday);
  75.       break;
  76.     case 'K': /* Birthdate: Month/Day/Year */
  77.       sprintf(s,"%d/%d/%d",thisuser.month,thisuser.day,thisuser.year);
  78.       break;
  79.     case 'L': /* User's Real Name */
  80.       sprintf(s,"%s",thisuser.realname);
  81.       break;
  82.     case 'M': /* Computer Type */
  83.       sprintf(s,"%s",ctypes[thisuser.comp_type]);
  84.       break;
  85.     case 'N':  /* User's Name */
  86.       sprintf(s,"%s",thisuser.name);
  87.       break;
  88.     case 'O': /* Note */
  89.       sprintf(s,"%s",thisuser.note);
  90.       break;
  91.     case 'P': /* User's phone number */
  92.       sprintf(s,"%s",thisuser.phone);
  93.       break;
  94.     case 'Q': /* CallSign */
  95.       sprintf(s,"%s",thisuser.callsign);
  96.       break;
  97.     case 'R': /* Msgs read */
  98.       sprintf(s,"%d",thisuser.msgread);
  99.       break;
  100.     case 'S': /* Street */
  101.       sprintf(s,"%s",thisuser.street);
  102.       break;
  103.     case 'T': /* State */
  104.       sprintf(s,"%s",thisuser.state);
  105.       break;
  106.     case 'U': /* Country */
  107.       sprintf(s,"%s",thisuser.country);
  108.       break;
  109.     case 'V': /* Mail Waiting */
  110.       sprintf(s,"%d",thisuser.waiting);
  111.       break;
  112.     case 'W': /* Password */
  113.       sprintf(s,"%s",thisuser.pw);
  114.       break;
  115.     case 'X': /* Sex */
  116.       sprintf(s,"%c",thisuser.sex);
  117.       break;
  118.     case 'Y': /* BBS System Name */
  119.       sprintf(s,"%s",syscfg.systemname);
  120.       break;
  121.     case 'Z': /* Zip */
  122.       sprintf(s,"%s",thisuser.zipcode);
  123.       break;
  124.     case '1': /* CTRL-D */
  125.       sprintf(s,"%s",thisuser.macros[0]);
  126.       break;
  127.     case '2': /* CTRL-F */
  128.       sprintf(s,"%s",thisuser.macros[1]);
  129.       break;
  130.     case '3': /* CTRL-A */
  131.       sprintf(s,"%s",thisuser.macros[2]);
  132.       break;
  133.     case '4': /* Current Time */
  134.       strcpy(s,times());
  135.       break;
  136.     case '~': /* Ass Points */
  137.       sprintf(s,"%d",thisuser.ass_pts);
  138.       break;
  139.     case '!': /* # of illegal logons */
  140.       sprintf(s,"%d",thisuser.illegal);
  141.       break;
  142.     case '@': /* File Points */
  143.       sprintf(s,"%d",thisuser.filepoints);
  144.       break;
  145.     case '#': /* User's Number */
  146.       sprintf(s,"%d",usernum);
  147.       break;
  148.     case '$': /* Bank Time */
  149.       sprintf(s,"%d",thisuser.banktime);
  150.       break;
  151.     case '%': /* User's GOLD */
  152.       sprintf(s,"%.0f",thisuser.gold);
  153.       break;
  154.     case '^': /* WWiV Reg Num */
  155.       sprintf(s,"%d",thisuser.wwiv_regnum);
  156.       break;
  157.     case '&': /* Pause */
  158.       pausescr();
  159.       break;
  160.     case '*': /* Date */
  161.       strcpy(s,date());
  162.       break;
  163.     case ')': /* # of files uploaded */
  164.       sprintf(s,"%d",thisuser.uploaded);
  165.       break;
  166.     case '>': /* K uploaded */
  167.       sprintf(s,"%d",thisuser.uk);
  168.       break;
  169.     case '(': /* # of files downloaded */
  170.       sprintf(s,"%d",thisuser.downloaded);
  171.       break;
  172.     case '<': /* K downloaded */
  173.       sprintf(s,"%d",thisuser.dk);
  174.       break;
  175.     default:
  176.       return(0);
  177.   }
  178.   outstr(s);
  179.   return(1);
  180. }
  181.  
  182.  
  183. /** STEP 3: Save And Close BBSUTL.C And Open COM.C **/
  184. /** In Function outchr(char c) Search For The Following **/
  185.  
  186.   if (change_color) {
  187.     change_color = 0;
  188.     if ((c >= '0') && (c <= '7'))
  189.       ansic(c - '0');
  190.     return;
  191.   }
  192.   if (c == 3) {
  193.     change_color = 1;
  194.     return;
  195.   }
  196.  
  197. /** Below That, Add The Following **/
  198.  
  199.   if (pipes) {
  200.     pipes = 0;
  201.     pipe(c);
  202.     return;
  203.   }
  204.   if (c == 5) {  /** If C = CLOVER, 5 Being The Ascii Value Of The Clover **/
  205.     pipes = 1;
  206.     return;
  207.   }
  208.  
  209. /** STEP 4: Save And Close COM.C And Open FCNS.H **/
  210. /** Under The BBSUTL.C Prototype Block, Add The Following **/
  211. int pipe(char ch);
  212.  
  213. /** Save And Close FCNS.H And Open VARS.H
  214.     At the bottom of the __EXTRN__ int block, add the variable "pipes"
  215.     It should look something like below
  216. **/
  217.  
  218.               sysop_alert, tempio, topdata, topline, two_color,
  219.               userfile, usernum, useron, use_workspace, using_modem,
  220.               wfc, x_only, pipes; /** Added "pipes" **/
  221.  
  222. /** Step 5: Save And Close VARS.H And Open MSGBASE.C **/
  223. /** In void inmsg(...)  Do Following **/
  224.  
  225. /* Search For This, And Add Specified Code */
  226.  
  227.       if (s[0]=='/') {                /* Existing Code */
  228.         if (stricmp(s,"/HELP")==0) {  /* Existing Code */
  229.           savel=0;                    /* Existing Code */
  230.           printmenu(2);               /* Existing code */
  231.         }                             /* Existing Code */
  232.       if(stricmp(s,"/PIPES")==0) {    /* Add Me */
  233.           savel=0;                    /* Add Me */
  234.           printfile("PIPES.ANS");     /* Add Me */
  235.       }                               /* Add Me */
  236.  
  237. /** STEP 6: Save And Close MSGBASE.C And Re-Compile Your Whole Board **/
  238.  
  239. /** STEP 7: UUDecode Following And Put It In Your GFILES Directory
  240.             So Your Users Know What Commands To Use For The Pipes **/
  241.  
  242. section 1 of uuencode 4.13 of file PIPES.ANS    by R.E.M.
  243.  
  244. begin 644 PIPES.ANS
  245. M&ULT,&T;6S)*&ULP.S$[,S1MVL3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$%
  246. MQ,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q!M;,S9MQ,3$Q!M;,#LS-FW$Q,3$=
  247. M&ULS-VW$OQM;,CLQ2!M;,3LS-&VS&ULR,4,;6S!M4&D;6S,V;7`;6S%M92!#3
  248. M;VUM&ULP.S,V;6%N&ULS-VUD<QM;,C9#LQM;,3LS,&W;&ULS.S%(&ULS-&W#=
  249. MQ,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$L
  250. MQ,3$Q,3$Q,3$Q,3$Q,3$&ULP.S,V;;0;6W,-"AM;=1M;,3LS,&W;&ULT.S%(Q
  251. M&ULS-&VS(!M;,S!M02`@&ULS,6U,87-T($]N&ULQ,$,;6S,P;4P@(!M;,S%M/
  252. M4F5A;&YA;64;6S=#&ULS,&U7("`;6S,Q;5!A<W-W;W)D&ULQ,$,;6S`[,S9M7
  253. MLQM;,3LS,&W;&ULU.S%(&ULS-&VS(!M;,S!M0B`@&ULS,6U,87-T($)A=60@=
  254. M4F%T92`@(!M;,S!M32`@&ULS,6U#;VUP=71E<B!4>7!E("`;6S,P;5@@(!M;N
  255. M,S%M4V5X&ULQ-4,;6S,V;;,;6S,P;=L;6S8[,4@;6S,T;;,@&ULS,&U#("`;_
  256. M6S,Q;4-I='D;6W,-"AM;=1M;,3-#&ULS,&U.("`;6S,Q;4%L:6%S&ULQ,$,;U
  257. M6S,P;5D@(!M;,S%M0D)3(%-Y<W1E;2=S($YA;64@&ULS-FVS&ULS,&W;&ULW!
  258. M.S%(&ULS-&VS(!M;,S!M1"`@&ULS,6U$871A(%!H;VYE&ULW0QM;,S!M3R`@)
  259. M&ULS,6U.;W1E&ULQ,4,;6S,P;5H@(!M;,S%M6FEP8V]D91M;,3%#&ULS-&VS4
  260. M&ULS,&W;&ULX.S%(&ULS-&VS(!M;,S!M12`@&ULS,6U%>&5M<'1I;VX;6SA#,
  261. M&ULS,&U0("`;6S,Q;5!H;VYE&ULQ,$,;6S,P;3$;6S,W;2P;6S,P;1M;<PT*,
  262. M&UMU,AM;,S=M+!M;,S!M,R`@&ULS,6U-86-R;W,@1!M;,S=M+QM;,S%M1AM;U
  263. M,S=M+QM;,S%M02`@&ULS-&VS&ULS,&W;&ULY.S%(&ULS-&VS(!M;,S!M1B`@I
  264. M&ULS,6U&:7)S="!4:6UE($]N("`@(!M;,S!M42`@&ULS,6U#86QL<VEG;AM;H
  265. M-T,;6S,P;7X@(!M;,S%M07-S(%!O:6YT<QM;.$,;6S,T;;,;6S,P;=L;6S$PO
  266. M.S%(&ULS-&VS(!M;,S!M1R`@&ULS,6U!9V4;6S$T0QM;,S!M4B`@&ULS,6U-`
  267. M<V=S(%)E860;6S9#&ULS,&TA("`;6S,Q;4EL&UMS#0H;6W5L96=A;"!,;V=OZ
  268. M;G,@("`@&ULS-&VS&ULS,&W;&ULQ,3LQ2!M;,S1MLR`;6S,P;4@@(!M;,S%M'
  269. M4V5C($QE=AM;,3!#&ULS,&U3("`;6S,Q;5-T<F5E=!M;.4,;6S,P;4`@(!M;M
  270. M,S%M1FEL92!0;VEN=',;6S=#&ULS-&VS&ULS,&W;&ULQ,CLQ2!M;,S1MLR`;6
  271. M6S,P;4D@(!M;,S%M6&9E<B!396,@3&5V&ULU0QM;,S!M5"`@&ULS,6U3=&%T.
  272. M91M;,3!#&ULS,&TC("`;6S,Q;55S97(@3G5M8F5R&ULW0QM;,S1MLQM;,S!M*
  273. MVQM;,3,[,4@;6S,V;;,;6W,-"AM;=2`;6S,P;4H@(!M;,S%M5&EM97,@3VX@;
  274. M5&]D87D@("`;6S,P;54@(!M;,S%M0V]U;G1R>1M;.$,;6S,P;20@(!M;,S%M0
  275. M0F%N:V5D(%1I;64;6S=#&ULS-&VS&ULS,&W;&ULQ-#LQ2!M;,S9MLR`;6S,PY
  276. M;4L@(!M;,S%M36]N=&@;6S,W;2\;6S,Q;41A>1M;,S=M+QM;,S%M665A<B`@;
  277. M(!M;,S!M5B`@&ULS,6U-86EL(%=A:71I;F<@("`;6S,P;24@(!M;,S%M1V]L"
  278. M9!M;,31#&ULS-&VS&ULS,&W;&ULQ-3LQ2!M;,#LS-FVS(!M;,3LS,&U>("`;\
  279. M6W,-"AM;=1M;,S%M5U=I5B!296<@3G5M&ULU0QM;,S!M*2`@&ULS,6U5<&QO/
  280. M861E9!M;-T,;6S,P;3X@(!M;,S%M57!L;V%D($L;6S$P0QM;,S1MLQM;,S!MV
  281. MVQM;,38[,4@;6S`[,S9MLR`;6S$[,S!M*"`@&ULS,6U$;W=N;&]A9&5D&ULWF
  282. M0QM;,S!M/"`@&ULS,6U$;W=N;&]A9"!+&ULR-D,;6S,T;;,;6S,P;=L;6S$W^
  283. M.S%(&ULP;;,;6S8P0QM;,3LS-&VS&ULS,&W;&ULQ.#LQ2!M;,&W`Q!M;,S9M]
  284. MQ,3$Q!M;,6W$Q,3$&ULS-&W$Q,3$Q,3$Q,3$Q,3$Q!M;<PT*&UMUQ,3$Q,3$`
  285. MQ,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q-D;6S,P;=L;6S$Y.S%(=
  286. M("#?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?H
  287. ?W]_?W]_?W]_?W]_?W]_?W]_?&ULR,#LQ2!M;,&T-"FT-(
  288. ``
  289. end
  290. sum -r/size 49662/2720 section (from "begin" to "end")
  291. sum -r/size 9084/1921 entire input file
  292.  
  293. There you go. Now, if you want to be mean, don't tell your users
  294. you installed pipes and play around a little. It's great fun when
  295. they don't know what's going on.. Heh. Any bugs you find with this
  296. mod, please let me know ASAP so I can fix them. Thanx..
  297.  
  298.                                 - Bast
  299. 2@7309  WWIVNet
  300. 2@17306 WWIVLink
  301.  
  302.  
  303. <EOF>
  304.